#ifndef MAINSCENE_H_
#define MAINSCENE_H_

#include <iostream>
#include <string>
#include <utility>
#include <map>

using std::cout;
using std::endl;
using std::string;
using std::ostringstream;

#include "OGRE/Ogre.h"
#include "OGRE/OgreEntity.h"
#include "OGRE/OgreSubEntity.h"
#include "OIS/OIS.h"

#include "OISHandler.h"

class MainScene {
public:
	MainScene();
	~MainScene();

protected:
	Ogre::RenderWindow* window;
	OISHandler* oisHandler;

private:
	// Ogre objects
	Ogre::Camera* mCamera;
	Ogre::SceneNode* mCameraNodo;
	Ogre::Viewport* viewport;
	Ogre::SceneManager* mSceneMgr;

	// Resources file
	Ogre::String recursosCfg;

	// Escenario
	Ogre::SceneNode* escenarioNodo;
	Ogre::Entity* escenario;

	// Light
	Ogre::Light* luzPunto1;
	Ogre::Light* luzPunto2;
	Ogre::Light* luzPunto3;
	Ogre::Light* luzPunto4;

	// Control de tiempo
	Ogre::Timer* temporizador;
	Ogre::Real ultimoFrame;
	Ogre::Real deltaT;

protected:
	void prepararRecursos();
	void crearEscena();

public:
	void buclePrincipal();

};

#endif
